System for Providing Localized Shopping Information

ABSTRACT

A localization service is provided that provides users with online information on local retailers that sell particular products. A user can perform a search using a web page associated with the localization service or by searching using an internet search engine. The user&#39;s search includes a search origin. The search origin may be defined in terms of location information such as a place name or a postal code. A search for a particular product at local retailers may be made using search parameters such as search origins, product names, model numbers, product categories, and product attributes. The localization service may provide the user with search results in the form of web pages that list which retailers sell the desired product in the vicinity of the search origin. A targeted advertisement server at the localization service may use display criteria to determine which targeted advertisements should be displayed for the user.

BACKGROUND

This invention relates generally to computer systems, and moreparticularly, to systems that assist users in locating products ofinterest at local retailers.

Web-based shopping comparison services are available that allow users tocompare product prices at online retailers. In a typical scenario, auser browses to a shopping comparison service home page and initiates asearch for a product of interest. The user can enter a product's modelnumber or more general information such as a desired type of product.The shopping comparison service identifies online retailers that carrysuitable products. The user is generally presented with a web pagecontaining a list of prices for the product of interest and a list ofassociated online retailers at which the product is available. Web pagessuch as these are often indexed by internet search engines.

Online shopping comparison services are helpful when users areinterested in purchasing products online, but do not assist a user whois interested in purchasing a product at a brick and mortar store. Theonline retailers that are located may not even have brick and mortarestablishments, let alone establishments that are in the user'svicinity.

A user who wants to locate a local retailer who sells a product ofinterest may therefore turn to an online directory service. With anonline directory service, a user can locate retailers who sell certaintypes of products by performing a directory search. For example, a userwho is interested in purchasing a particular model of television set canattempt to locate local electronics dealers by performing a search usingthe search term “electronics.” However, online directory services arenot able to provide pricing or availability information for particularproducts.

It would therefore be desirable to be able to provide improved localshopping information online.

SUMMARY

In accordance with the present invention, an online localization serviceis provided that provides users with information on which localretailers sell particular products.

A user with a web browser may perform a search for a product andlocation of interest using an Internet search engine or using a queryengine associated with the localization service. The location ofinterest, which is sometimes referred to as a search origin, may bedefined by a place name (e.g., the user's city), a zip code, or othergeographic terms. The product of interest may be defined using productterms such as a product name, a product model number, a productcategory, etc.

The user may be provided with search results that match the user'ssearch parameters. The search results may include a list of universalresource locators, each of which corresponds to a web page associatedwith the localization service. When the user clicks on a desireduniversal resource locator, the universal resource locator and itsembedded user search parameters are provided to the localizationservice.

The localization service has databases. The localization service mayextract the search parameters from the universal resource locator whenthe localization service receives the universal resource locator fromthe user over the internet. A page generation engine may use informationin the databases and the extracted search parameters to dynamicallygenerate a web page for the user. The web page may include a list ofwhich retailers in the vicinity of the search origin carry the productfor which the user is searching. Web pages such as these may containpricing information, information on how far each retailer is from thesearch origin, product images and other product information, andpromotional information.

The localization service may have an advertisement server that appliesdisplay criteria such as location-based display criteria to the searchparameters that are received from the user. The search parameters anddisplay criteria may be used to determine which targeted advertisementsare to be displayed for the user.

Further features of the invention, its nature and various advantageswill be more apparent from the accompanying drawings and the followingdetailed description of the preferred embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an illustrative system for a localization servicethat can be used to provide information on locally available products tointerested users in accordance with an embodiment of the presentinvention.

FIGS. 2, 3 and 4 show illustrative product detail pages that may bedisplayed to a user by a localization service in accordance with anembodiment of the present invention.

FIG. 5 shows an illustrative product category page that may be displayedfor a user by a localization service in accordance with an embodiment ofthe present invention.

FIG. 6 shows an illustrative store detail page that may be displayed fora user by a localization service in accordance with an embodiment of thepresent invention.

FIG. 7 is a schematic diagram of illustrative databases that may be usedby a localization service in accordance with an embodiment of thepresent invention.

FIG. 8 is a flow chart of illustrative steps involved in establishingand maintaining databases for a localization service in a system of thetype shown in FIG. 1 in accordance with an embodiment of the presentinvention.

FIG. 9 is a flow chart of illustrative steps involved in using alocalization service to provide users with information on locallyavailable products in accordance with an embodiment of the presentinvention.

FIGS. 10 and 11 contain a flow chart of illustrative steps involved inusing a page generation engine to provide a user with pages such as astore detail page, product detail page, and product category page inaccordance with an embodiment of the present invention.

DETAILED DESCRIPTION

The present invention relates to computer-implemented methods forproviding users with online information on locally available products.An illustrative system 10 for providing users with localized onlineproduct information is shown in FIG. 1.

The entities of FIG. 1 may have associated computing equipment. Thecomputing equipment that is used by the various entities of FIG. 1 maybe based on one or more personal computers, workstations, mainframecomputers, networks of such computers, or any other suitable computingequipment.

The computing equipment may be interconnected by communications network18. Network 18 may include local area networks, wide area networks suchas the internet, or any other suitable communications networks.

Brick and mortar retailers 12 (companies with physical stores) havephysical stores in which they offer products for sale. Customers mayvisit the physical stores of retailers 12 and may browse formerchandise. Retailers 12 may also have an online presence, but thepresent discussion will generally focus on the brick and mortar aspects(physical presence aspects) of each retailer's business.

The products that retailers 12 offer for sale are generally manufacturedby manufacturers 16. Manufacturers 16 include companies that fabricateproducts from raw materials, companies that assemble products from theparts made by other companies, subsidiaries of larger companies (e.g.,subsidiaries that are associated with different brand names), etc.

Users 24 have software on their computing equipment such as web browsers26. Web browsers 26 may be used to access web pages from services suchas internet search engine 20 and localization service 28 overcommunications network 18.

Localization service 28 may have one or more databases 34 that may beused to dynamically generate web pages for users 24 with web browsers26. The information that is stored in databases 34 may be madeaccessible to search engines such as search engine 20. This allowssearch engine web crawlers to examine and index the content stored indatabases 34. One way to ensure that the web pages of localizationservice 28 are crawlable by search engine web crawlers is to embedcrawlable links in the web pages. By ensuring that most or all of thedynamically generated web pages from databases 34 are linked to eachother with crawlable hypertext markup language (HTML) links, the contentof databases 34 may be made available to users who perform searchesusing internet search engines such as internet search engine 20.

The content of databases 34 may also be made available to users 24 overcommunications network 18 using page generation engine 36.

The information in database 34 may be obtained from retailers 12,manufactures 16, geocoding sources 22, and other suitable sources. Thisinformation may be acquired by localization service 28 overcommunications network 18 using data acquisition engine 32. For example,data acquisition engine 32 may access information that has been storedin databases 14 by retailers 12 and information that has been stored indatabases 44 by manufacturers 16. Entities such as retailers 12 andmanufacturers 16 may also push information to localization service 28.For example, a retailer or manufacturer may store information indatabases 34 using promotional console 30. With one suitablearrangement, promotional console 30 may be provided in the form of aweb-based interface. A retailer or manufacturer can log into thepromotional console 30 to upload information such as lists of retailstores, store addresses, store hours, store coupons and otherpromotions, manufacturer coupons and other promotions, productinformation such as product features, product specifications, productimages, product manuals, etc.

Data enrichment engine 38 may process the data that has been acquiredusing data acquisition engine 32 (and, if desired, the data that hasbeen provided using promotional console 30). For example, dataenrichment engine 38 may consult one or more geocoding services 22 whenprocessing data 34. Geocoding services 22 may be used to identify aparticular geocode (e.g., a longitude and latitude) corresponding to aretail location. By consulting multiple services such as services 22,data enrichment engine 38 can eliminate redundant information such asduplicate store locations and can otherwise improve data accuracy.

Localization service 28 may act as a web server for users 24 who arebrowsing the internet with web browsers 26. Because the content ofdatabase 34 is preferably indexed by internet search engines, a user whoperforms a web search using an internet search engine will generally beprovided with search results in the form of a list of web pages thatcontain local product information from database 34. In a typicalscenario, a user might type in a search such as “Sony KDL-46XBR3Television San Francisco” in an attempt to locate information onretailers selling a particular model of television in the vicinity ofSan Francisco. The web pages that the search engine identifies in itssearch results correspond to web pages generated by page generationengine 36 based on information in databases 34.

Localization service 28 can also serve as a web server that makes a homepage available to users 24. The home page (or other suitable web sitepage) may contain an option that allows a user to create or edit acustomized search origin. The search origin typically corresponds to thegeographic location of the user's home or business or to an area inwhich the user might want to shop. In a typical scenario, a user mightclick on a link entitled “change location.” When the user clicks on thechange location option, service 28 may provide the user with anopportunity to enter a desired search origin. The search origin may besupplied in the form of a place name (e.g., San Francisco) or may beprovided using other techniques (e.g., using a zip code).

The home page may also contain a search box into which a user can entera product name or category. As an example, a user may type the name of aparticular television model into the search box. Once the user hassupplied a search origin and has typed other search parameters into thebox provided by localization service 28, the user may click on a searchbutton. In response, the user's browser 26 may supply localizationservice 28 with the search parameters over communications network 18.

Query engine 40 may be used to perform a database search on databases 34using the search parameters. The results of searching database 34 forlocal product availability may be provided to users 24 in the form ofweb pages. If desired, promotional information may be provided on theweb pages. With one suitable arrangement, some or all of the searchterms that are used in searching databases 34 may be used in targetingadvertisements for the user. The targeted advertisements may be providedby advertisement server 42.

Using localization service 28, users can obtain accurate information onwhich local retailers carry a particular product. The web pages thatlocalization service 28 provides to the users also contain pertinentinformation such as product prices, store locations, the distancebetween the search origin and each retailer, the lowest price availableat any store within a particular distance from the search origin,special sales or other promotions that are available, etc. Any suitableweb page format may be used to present search results to a user.

With one suitable arrangement, which is described as an example,localization service 28 and page generation engine 36 may provide atleast three types of web pages: product detail pages, product categorypages, and store detail pages. These are merely illustrative web pagesthat the system of FIG. 1 may provide to a user. Any suitable web pageformat may be used to present the information from databases 34 to users24 if desired. Moreover, the use of web pages and web browsers 26 as thedelivery mechanism for this information is presented as an example.Customized server and client software that does not use web browsers maybe used in place of web browsers. An advantage of using web browsers 26and web pages as the format for delivering information from databases 34to users 24 is that web browsers are widely available.

When a user performs a search for a desired product using internetsearch engine 20 or query engine 40 of localization service 28, the useris provided with search results. An internet search engine typicallyprovides results in the form of a web page containing a list ofuniversal resource locators (URLs) corresponding to web pages oflocalization service 28. A user can click on one of the listed URLs(also called links) to obtain access to the desired web page.

When a user provides search parameters to localization service 28 (e.g.,by typing desired search terms into a search box on a web pageassociated with localization service 28), localization service 28 mayuse query engine 40 to perform a search on databases 34.

If localization service 28 detects that a user's search has resulted ina particularly close match (i.e., where there is only one retailer thatsells a given product in the user's vicinity), localization service 28can automatically present a user with a web page containing details onthe matching retailer. In this situation the search results may bepresented as a single web page.

If multiple retailers match the user's search parameters, thelocalization service may provide a web page containing a list of thematching retailers. The matching retailers may be listed in any suitableorder. For example, the retailers may be listed in order of theirdistance from the search origin, in order of their price for a desiredproduct, etc. Localization service 28 may charge a fee to particularretailers in return for preferential treatment in the list (e.g.,highlighting or listing at the top of the list in a sponsored resultsregion).

An illustrative product detail page that may be provided to a user inresponse to a search for local retailers carrying a desired product isshown in FIG. 2. As shown in FIG. 2, product detail screen 46 mayinclude a product name 50. The product name may include a model number,a brand, and other identifying information. Page 46 may also includeother product information 48 such as one or more product images, videoclips of a product, links to product manuals, specifications, features,product descriptions, product reviews, etc. Promotional information suchas one or more targeted advertisements may be displayed if desired. Atargeted advertisement such as targeted advertisement 52 may includetext, graphics, images, audio, and video (e.g., video including audio)or any suitable combination of such media. The media content fortargeted advertisement 52 may be provided to a user over communicationsnetwork 18 using advertisement server 42 (FIG. 1).

In the example of FIG. 2, a user has performed a search for the product“Maytag XYZ123.” One or more retailers that carry this product may belisted in list 56. Descriptive heading 54 informs the user that theretailers in the list have matched the user's search parameters. Heading54 may include information on the search origin 66 that is being used(e.g., “Mountain View”).

Each entry in list 56 may include a retailer name and address 58, aproduct price 60, and a distance 62. The name and address of eachretailer may include contact information such as telephone numbers,email addresses, and web site addresses. The price 60 that is listednext to the retailer's name and address corresponds the unique price atwhich that particular retail store is offering the “Maytag XYZ123”product. The distance 62 that is presented to the user corresponds tothe distance between that retail store and the user's search origin.

In the example of FIG. 2, the entries in list 56 have been organizedaccording to the distance of each retailer from the user's searchorigin. This is merely illustrative. The search results on page 46 maybe organized according to any suitable criteria. For example, theretailers may be listed alphabetically, randomly, based on descendingprice, based on ascending price, based on whether the product iscurrently in stock, etc. The user may be provided with clickable optionsthat allow the user to reorder the search results. For example, a usermay initially be presented with a page in which retailers are listedaccording to their distance from the user's search origin. If a userclicks on a “list by price” option, the list may be reordered so thatthe retailers are listed according to descending price for the desiredproduct.

The number of entries in list 56 may be limited by a given search radiusor other geographic limitation. The search radius may be 25 miles bydefault (or other suitable distance) and may be modified by the user.Information such as a user's search origin, desired search radius, andother personal information may be stored on localization service 28(e.g., under a user account) or may be maintained locally on usercomputing equipment 24 (e.g., using cookies—small amounts of data that auser's browser can submit to a web server and that the web server canuse to maintain specific information about the user).

Each entry in list 56 may have an associated clickable link (URL) 64.Once a user has decided which of the listed retailers is of interest,the user can click on the link 64 that is associated with that retailerto obtain more detailed information. With one suitable arrangement, thepage generation engine 36 presents the user with a store detail pagecorresponding to the selected link.

The contents of list 56 depend on the search parameters that are used.In the example of FIG. 2, a search was performed for product “MaytagXYZ123” with a search origin of Mountain View 94041. Either the placename “Mountain View, Calif.” or the zip code “94041” may be used todefine the search origin. The resulting list 56 includes retailers thatcarry the desired product (“Maytag XYZ123”) and that are in the vicinityof Mountain View, Calif.

As shown in FIG. 3, if a different search origin is used when searchingfor the same product, the contents of list 56 will change accordingly.In the FIG. 3 example, a search origin of Los Altos, Calif. has beenused in place of the search origin of Mountain View California that wasused in the FIG. 2 example. List 56 still includes retail stores thatcarry the Maytag XYZ123 product, but because the search origin isdifferent, the list of stores has been updated to include stores thatare in the vicinity of Los Altos rather than stores that are in thevicinity of Mountain View. There may be overlap between lists such aslist 56 of FIG. 2 and list 56 of FIG. 3 when nearby search origins areused. If search origins are used that are relatively far apart, theremay not be any overlap in the search results that are presented.

Another example is shown in FIG. 4. In the FIG. 4 example, the searchorigin has not been changed relative to the example of FIG. 3, but theproduct description has been changed. In the FIG. 3 example, the usersearched for the product “Maytag XYZ123,” whereas in the FIG. 4 example,the user has searched for the product “Kitchen Aid ABCDEF.” As a result,list 56 in FIG. 4 includes those retailers near the user's search originthat sell the product “Kitchen Aid ABCDEF.” There may be overlap betweenlist 56 of FIG. 3 and list 56 in FIG. 4 because many retailers may carryboth the brand “Maytag” and the brand “Kitchen Aid.”

Any suitable URL formatting scheme may be used to construct URLs forpages such as the product description pages of FIGS. 2, 3, and 4. Withone suitable arrangement, which is described as an example, each productdescription page URL contains a set of associated search parameters. Forexample, the URL for page 46 of FIG. 2 might behttp://www.krillion.com/XRPC_Maytag_XYZ123_MountainView_CA_(—)9 4041.The first portion of the URL http://www.krillion.com/corresponds to thedomain name for the localization service 28.

The term XRPC is a code that is used for disambiguation. A variety ofsuch codes may be used by service 28. Use of disambiguation codes in theURLs for the web pages of service 28 helps to avoid situations in whichtwo web pages that should be different inadvertently share the same URL.This might occur, as an example, when a product name and a place nameare the same. The disambiguation code avoids confusion by labeling eachURL term (e.g., the letter “P” in the disambiguation code might indicatethat a corresponding term in the URL is a place name).

Following the disambiguation code, the URL contains URL parameters suchas “Maytag” (a brand name), “XYZ123” (a model number), Mountain View (acity name), CA (a state name), and 94041 (a zip code). These areexamples of the types of parameters that a user may supply to searchengine 20 or query engine 40 (FIG. 1) when attempting to locate aproduct of interest. Parameters such as these are sometimes referred toas search terms or search parameters. Suitable URL parameters mayinclude general and specific product categories (e.g., appliances orrefrigerators), product attributes (e.g., electric, manual, LCD, plasma,etc.).

The URL for the illustrative product detail page of FIG. 3 might behttp://www.krillion/XRPC_Maytag_XYZ123_LosAltos_CA_(—)94022. The URL forthe illustrative product detail page of FIG. 4 might behttp://www.krillion.com/XRPC_KitchenAid_ABCDEF_LosAltos_CA_(—)9 4022.

In the examples of FIGS. 2, 3, and 4, product detail web pages 46 weredescribed. Product detail web pages may be provided to users who aresearching for a particular model of product. Sometimes, however, a userperforms a search using more general search terms. For example, a usermay perform a search for “refrigerators.” In this type of situation, itis not necessarily desirable to display retailer information that islimited to a particular refrigerator model. Rather, it may be desirableto display information for a range of different refrigerators.

One way in which search results information that is applicable tomultiple products may be presented to a user is with a product categorypage of the type shown in FIG. 5. As shown in FIG. 5, product categorypage 58 may contain entries that correspond to multiple products. In theexample of FIG. 5, the first row of search results corresponds to anentry for a refrigerator model “GE XYZ1”, whereas the second row of thesearch results corresponds to an entry for a refrigerator model “GEABCZ.” There are only two entries in the page shown in FIG. 5, but ingeneral there may be any suitable number of entries.

Each entry may include associated product information 48 and links 66 tonearby stores that carry the model in that entry. Product category webpages such as web page 58 may include one or more columns of pricinginformation such as column 74. Column 74 may list the lowest price 68for the product in each row. This serves as a summary for the user, whomay not want to separately browse to each of links 66. The name andaddress of the retailer that is selling the lowest price product mayalso be provided in column 74, as indicated by name and address 70. Aclickable retailer link 72 may be provided adjacent to each retailername and address. A user who is interested in obtaining more informationabout a particular store may click on an appropriate one of links 72.

When a user has identified a retailer of interest (e.g., from a productdetail page such as product detail pages 46 of FIGS. 2, 3, and 4 or froma product category page such as page 58 of FIG. 5), a user may click ona link associated with that retailer. For example, a user may click onlink 64 on page 46 of FIG. 2, may click on one of links 66 on page 58 ofFIG. 5, or may click on one of links 72 on page 58 of FIG. 5. Inresponse, page generation engine 36 may display a store detail page suchas store detail page 76 of FIG. 6.

As shown in FIG. 6, store detail page 76 may include the product name 50and other product information 48 for the product that the user isinterested in purchasing. Store detail page 76 may also contain a regionsuch as region 78 in which detailed information on the selected retaileris presented. Regions such as region 78 may include the retailer's name80 and address 82. Additional information 84 such as store hours orcontact information such as an email addresses, web site addresses, andtelephone numbers may also be provided. An interactive map such as map88 may be included on page 76 to provide the user with detailed locationinformation and driving directions. Map 88 may show the retailer'slocation and, if desired, a driving route to the retailer from thesearch origin.

The price for which the retailer offers the product may be displayed asshown by price 86. Because different branches of a given retail companymay offer the same product at different prices, the price 86 may notalways be the same at different store branches. The price 86 may includepromotional pricing that is in effect at the particular store identifiedby name 80 and address 82. By making local pricing information(including promotional pricing information) available to users online,users are provided with the information they need to make an immediatelocal purchase decision, without forcing users to hunt for anappropriate retailer in a directory and make follow-up telephone callsto inquire about product pricing and availability.

Targeted promotional information such as targeted advertisement 52 ofFIG. 6 may be displayed in region 78 or in region 90. Advertisementssuch as advertisement 52 may be targeted based on the user's searchparameters (e.g., the user's search origin, the user's default oruser-selected maximum search radius, the user's desired product name,store name, address, product category, model number, etc.).

Because localization service 28 has a large amount of information on theuser's location and interests, advertisements can be narrowly tailored.For example, a company may run an advertisement that is shown only forusers who have searched for a competitor's product or only for userswhose search origin is within a certain distance of one of their retailoutlets or the stores of a competitor. Advertisements may also betargeted based on product categories. For example, if a user searchesfor refrigerators, an advertisement 52 may be displayed that advertiseskitchen appliances, a particular type of refrigerator, redecoratingservices, etc. Targeted advertisements may be provided to users 24 bylocalization service 28 using advertising server 42 (FIG. 1).

Illustrative databases 34 that localization service 28 may use toprovide product and retailer information to users are shown in FIG. 7.As shown in FIG. 7, databases 32 may include a retailer location list92.

Retailer location list may include retailer names, correspondingretailer addresses, corresponding geocodes (e.g., longitudes andlatitudes or other information indicating precise geographic locations),and ancillary retailer information such as telephone numbers, web siteaddresses, contact information for each retailer, etc.

Databases 32 may also include a product list 94. Product list 94 mayinclude a list of products and, for each product associated informationsuch as the name of that product's manufacturer, identifying informationfor the product such as a model number, a SKU (stock keeping unit),product images, product manuals, product features, productspecifications, product descriptions, etc.

Retailer location to product name mapping table 96 may be used to relatedatabases 92 and 94. For example, if there are N retailers in retailerlocation list 92 and M products in product list 94, table 96 may containN*M entries. Each entry in mapping table 96 relates a particular productto a particular retailer that sells the product and has an associatedproduct price at that retailer. The price of the same product willgenerally be different for different store locations, so the entries intable 96 for a particular product may have different prices. If desired,table 96 may include promotional information. For example, a retailermay append information to a product such as information on applicableinstallation or design services, promotions, etc.

Zip code to location mapping table 98 may include a list of zip codes(postal codes). For each zip code, table 98 may contain a correspondingset of place names and geocodes. In many situations, there will be asingle place name (e.g., a particular city) corresponding to a given zipcode. The location of the center of the city may be represented by ageocode. In other situations, one zip code may be associated withmultiple cities, each having an associated geographical locationrepresented by a unique geocode.

Place to location mapping 100 may contain a list of place names. Thelist of place names in this database may include official city names andunofficial city names (e.g., the names of neighborhoods in a large cityor the name of a portion of a city). For each place name in mapping 100,mapping 100 may include one or more corresponding zip codes andgeocodes. As an example, a large city may have multiple zip codes.

Databases 34 may include a product category table such as productcategory table 102. Product category table 102 may relate categories toassociated more specific product categories (child categories) and lessspecific categories (parent categories). For example, the categorytelevisions may be related to parent category electronics and childcategories LCD televisions and plasma televisions.

Product to category mapping 104 may include information on whichcategories each product is associated with. For example, a particularmodel of refrigerator could be related to the product category“refrigerator.”

Some retailers may want to offer promotional pricing. For example, aretailer might offer $20 off all products costing $200 or more, aretailer might offer 5% off all products, or a retailer might offer aparticular discount (e.g., $200) on a particular product. Information onapplicable promotional pricing schemes such as these may be stored inpromotional pricing table 106.

Targeted advertisements may be stored in targeted advertisement table108. This table, which may be accessed by or stored in ad server 42 ofFIG. 1, may be used to provide users with targeted advertisements suchas targeted advertisements 52 of FIGS. 2-6. Table 108 may includetargeted advertisements and, for each advertisement, associated criteriato be applied by localization service 28 (i.e., targeted advertisementserver 42) when determining which targeted advertisements should bedisplayed for a user. Typical display criteria may include rules such as“do not display on Saturdays” or “display whenever a particular retaileris listed on web page.”

More complex display rules may also be used. For example, anadvertisement may be displayed whenever a sponsor's store is listed on aweb page or whenever a sponsor's competitor's store is listed.Information such as the location of the search origin or othergeographic boundary information may be taken into account whendisplaying advertisements. For example, a store may desire to display anadvertisement whenever a user's search generates a match for the storethat is less than 5 miles away from the user's search origin. Ingeneral, any suitable combination of search parameters (e.g., searchorigin, model name, product category, search location, search placename, search zip code, etc.) may be used when applying the displaycriteria associated with a particular advertisement. The foregoingexamples are merely illustrative.

Illustrative steps involved in creating and maintaining databases 34 areshown in FIG. 8. At step 110, data for databases 34 may be acquired. Forexample, data acquisition engine 32 may extract information fordatabases 34 from web sites on the internet and may otherwise obtainelectronically available database information. If desired, dataacquisition engine 32 may electronically contact databases 14 and 44 toextract information for databases 34. Information may also be stored indatabases 34 by retailers 12 and manufacturers 16.

During steps 120, 122, 124, and 126, data enrichment engine 38 (FIG. 1)performs data enrichment operations on the data that has been acquired.Data enrichment may be performed using internally available data (e.g.,by cross-checking data in databases 32 to determine whether it isself-consistent) and using externally available data (e.g., geocodingdata from external sources such as geocoding data from internetgeocoding services 22).

At step 120, data enrichment engine 38 cleanses the acquired data.During the operations of step 120, data enrichment engine 38 may comparedatabase data to one or more alternative trusted sources. As an example,data enrichment engine 38 may compare zip codes that have been acquiredto a trusted source of zip code data such as a zip code database fromthe United States Postal Service. As another example, city names may becompared to a trusted directory of city names. Address formats may bestandardized. For example, streets may be named with a standardizednaming convention.

At step 122, data enrichment engine 38 may remove redundant informationfrom the acquired data. For example, data enrichment engine 38 maycompare entries in databases 34 to each other to identify duplicateentries. If two entries are found to be duplicative (e.g., because tworetailer entries are located at the same address, because two productshave the same model number, etc.), the extra entries may be deleted fromdatabases 34.

At step 124, data enrichment engine 38 may place the acquired data intothe tables and other data structures shown in FIG. 7. For example,products can be categorized and associated with appropriate productcategory names.

At step 126, data enrichment engine 38 may correct erroneous locationdata in database 34. For example, data enrichment engine 38 may checkwhether a geocode for an address of a retailer is correct by consultingmultiple geocoding databases such as geocoding databases associated withgeocoding services 22 (FIG. 1). By mapping addresses to multiplegeocodes (e.g., longitudes and latitudes) and comparing the resultinggeocodes, data enrichment engine 38 can ensure that the retailerlocation geocodes in database 34 are accurate.

After enriching the acquired data during the operations of steps 120,122, 124, and 126, localization service 28 may obtain information forpromotional pricing table 106 and targeted advertisement table 128.Promotional pricing and targeted advertisement information may beobtained automatically over communications network 18 (e.g., using adata acquisition tool such as data acquisition engine 32 to extractinformation from databases 14 and 44). Retailers 12 and manufacturers 16may also provide promotional pricing and targeted advertisementinformation to localization service 28 over network 18. For example,retailers 12 and manufacturers 16 may store information in databases 34over communications network 18 using promotional console 30. Retailers12 and manufactures 16 may also provide promotional pricing informationand targeted advertisement content to localization service 28 usingother techniques (email, mailed media, fax, etc.)

Page generation engine 36 dynamically generates web pages based on thecontent of databases 34. Localization service 28 may also supply staticweb pages. The static and dynamic web pages of localization service 28preferably contain crawlable HTML links so that the content of databases34 may be indexed by internet search engines such a internet searchengine 20. Indexing the content of databases 34 allows users to locateweb pages such as the product detail web pages of FIGS. 2, 3, and 4, theproduct category page of FIG. 5, and the store detail page of FIG. 6 aspart of an internet search for a desired product and retailer. Users canalso access the contents of databases 34 by performing a search usingthe query engine 40 that is associated with localization service 28.

Illustrative steps involved in locating and obtaining localizationservice web pages of interest using a system of the type shown in FIG. 1are shown in FIG. 9.

As shown in FIG. 9, a user may perform a web search using search engine20 (step 130). For example, a user may perform an internet search usingthe terms “Maytag,” “XYZ123,” and “Mountain View” in an attempt tolocate retailers that sell a particular Maytag refrigerator.

In response, search engine 20 performs an internet search and providesthe user with search results. The search results may be provided to theuser in the form of a web page containing a list of URLs. The URLs mayinclude URLs corresponding to pages such as the web page of FIG. 2.

When a user selects a desired one of the search results entries byclicking on one of the URLs, the localization service 28 receives theURL and provides a corresponding web page to the user (step 134). Pagegeneration engine 36 may be used to dynamically create web pages basedon the content in databases 34. The pages may include product detailpages, store detail pages, and product category page, as described inconnection with FIGS. 2-6.

If desired, a user can access the web pages of localization service 28by browsing to a home page or other web page of localization service 28that contains a search box. The home page may also contain options suchas a search origin option that allow the user to supply search parametersettings such as a preferred search origin, a preferred search radius,etc. At step 136, the user may enter search parameters and initiate asearch of this type. In response, query engine 40 queries databases 34to locate corresponding search results. If localization service 28identifies a particularly close match to the user's search parameters(e.g., when only a single web page matches the search) the localizationservice may automatically present the user with the appropriate webpage, as indicated by line 138. If localization service 28 produces alist of matching URLs, the list may be provided to the user at step 140.The user may then click on a desired URL. In response, localizationservice 28 provides the user with a corresponding web page at step 134.

Illustrative steps involved generating the web page at step 134 areshown in the flow chart of FIGS. 10 and 11.

At step 142, page generation engine 36 receives a URL from the webbrowser 26 of a user 24 over communications network 18. The URL includessearch parameters such as a desired search origin, product names and/orproduct categories, etc. As described in connection with the examples ofFIGS. 2, 3, and 4, the URL may also contain a disambiguation code.

At step 144, page generation engine 36 uses the disambiguation code toextract the search origin parameter(s) from the URL. For example, pagegeneration engine 36 may extract a zip code or a city name from the URL.During step 144, page generation engine 36 uses the extracted searchorigin information and databases 34 such as zip code to location mappingtable 98 and place to location mapping 100 to convert the search originparameter into a corresponding geocode (e.g., a longitude and latitudevalue).

At step 146, page generation engine 36 identifies relevant products indatabases 34. In particular, page generation engine 36 uses searchparameters such as product name and product category parameters anddatabases 34 such as product category table 102 and product list 94 toidentify which products match the user's product interests (e.g., whichproduct matches a product name of interest or which products match aproduct category of interest).

At step 148, page generation engine 36 uses retailer location to productname mapping table 96 to determine which retailers sell the product orproducts that were identified during step 146. Using retailer locationlist 92, page generation engine 36 determines which of the retailersthat carry the product(s) are located within a given distance (e.g., adefault or user-selected search radius) from the search origin. Becausethese retailers are located in the vicinity of the search origin andtherefore are generally located in the vicinity of the user, they aresometimes referred to as local retailers.

At step 150, using retailer location to product name mapping table 96,page generation engine 36 determines regular prices for the product(s)at the local retailers.

At step 152, page generation engine 36 uses promotional pricing table106 to apply any applicable price adjustments to the regular productprices.

At step 154, the page generation engine 36 assembles relevant searchparameters from the user's search to form an embedded URL for subsequentuse by advertisement server 42 in targeting promotional material to theuser. For example, the page generation engine 36 may create an embeddedURL that contains the terms category=refrigerator, search origin=PaloAlto, and product=Maytag XYZ123. The embedded URL may be returned to theuser's browser 26 as part of the web page that is produced by the pagegeneration engine.

Search engine web crawlers generally do not use the embedded URL inperforming their indexing tasks. However, the user's browser 26 sendsthe URL parameters such as the product category, product name, andsearch origin to advertisement server 42 over communications network 18in the form of the embedded URL (step 158).

At step 160, advertisement server 42 receives the embedded URL from theuser's web browser, extracts the embedded search parameters, and usesthe extracted parameters in determining which targeted advertisement todisplay for the user (e.g., as targeted advertisement 52 of FIGS. 2-6).In particular, advertisement server 42 of service 28 applies thetargeted advertisement display criteria from targeted advertisementtable 108 to the extracted search parameters to determine which targetedadvertisement should be provided to the user. A selected targetedadvertisement is then returned to the user's browser 26 overcommunications network 18 for the user to view in conjunction with theweb page contents presented by page generation engine 36.

The foregoing is merely illustrative of the principles of this inventionand various modifications can be made by those skilled in the artwithout departing from the scope and spirit of the invention.

1. A computer-implemented method for providing online local shoppinginformation to a user with a web browser who is interested in purchasinga product at a brick and mortar retailer, comprising: at an onlinelocalization service, receiving a universal resource locator from theweb browser that contains a plurality of search parameters, wherein thesearch parameters include a search origin that indicates a geographiclocation and a product name for a product; at the localization service,using the search origin and the product name to generate a web pagecontaining a list of retailers in the vicinity of the search origin thatcarry the product.
 2. The method defined in claim 1 further comprisingordering the retailers on the web page according to their distance fromthe search origin.
 3. The method defined in claim 1 further comprising:with an advertisement server, providing a targeted advertisement for theweb page.
 4. The method defined in claim 1 further comprising: with anadvertisement server, receiving at least the product name and the searchorigin; and applying targeted advertisement display criteria to at leastthe product name and the search origin to determine which targetedadvertisement to display on the web page.
 5. The method defined in claim1 wherein the localization service comprises a database containingpromotional pricing information, the method further comprising:displaying product prices on the web page, wherein the product pricesreflect promotional pricing adjustments from the promotional pricinginformation.
 6. The method defined in claim 1 further comprising: foreach listed retailer, displaying a retailer universal resource locatoradjacent to the listed retailer on the web page; and when a user selectsone of the displayed retailer universal resource locators correspondingto a given one of the retailers, generating a store detail web page forthe user that contains product information for the product including atleast the product name and an address for the given retailer.
 7. Themethod defined in claim 1 further comprising: for each listed retailer,displaying a retailer universal resource locator adjacent to the listedretailer on the web page; and when a user selects one of the displayedretailer universal resource locators corresponding to a given one of theretailers, generating a store detail web page for the user that containsproduct information for the product including at least the product nameand an address for the given retailer and including a map showing wherethe given retailer is located.
 8. The method defined in claim 1 furthercomprising: for each listed retailer, displaying a retailer universalresource locator adjacent to the listed retailer on the web page; andwhen a user selects one of the displayed retailer universal resourcelocators corresponding to a given one of the retailers, generating astore detail web page for the user that contains product information forthe product including at least the product name, an address for thegiven retailer, and the price at which the product is sold by the givenretailer.
 9. The method defined in claim 1 wherein the localizationservice has a database that includes a retailer location list, andwherein generating the web page comprises generating the web page usingthe retailer location list.
 10. The method defined in claim 1 whereinthe localization service has a database that includes geocodes for aplurality of retailer addresses, the method further comprising: with thelocalization service, consulting a plurality of geocoding services overthe internet to determine whether the geocodes are accurate.
 11. Themethod defined in claim 1 further comprising: with the localizationservice, receiving a product category from the user; and generating aproduct category web page based on the received product category,wherein the product category web page includes a plurality of productmodel numbers and a plurality of associated product images.
 12. Themethod defined in claim 1 further comprising: with the localizationservice, receiving a product category from the user; and generating aproduct category web page based on the received product category,wherein the product category web page includes a plurality of productmodel numbers and a plurality of associated product images and whereinfor each product model number the product category web page includes alowest price for that product model number that is available in thevicinity of the search origin.
 13. The method defined in claim 1 furthercomprising: at the localization service, determining which of theretailers that carry the product are within the vicinity of the searchorigin using a search radius.
 14. The method defined in claim 1 whereinthe localization service has databases and a page generation engine, themethod further comprising: with the page generation engine, dynamicallygenerating web pages for the user based on information in the databases.15. The method defined in claim 1 wherein the localization service hasdatabases and a page generation engine and wherein the databases includeproduct prices for the product at each of the retailers, the methodfurther comprising: with the page generation engine, dynamicallygenerating web pages for the user that contain the product prices basedon information in the databases.
 16. The method defined in claim 1further comprising providing the universal resource locator to thelocalization service in response to selection of the universal resourcelocator from a search engine search results list viewed by the user onthe web browser.
 17. The method defined in claim 1 wherein thelocalization service comprises databases, a promotional console, a pagegeneration engine, a data acquisition engine, a data enrichment engine,a query engine, and an advertisement server, the method furthercomprising: with the page generation engine, dynamically generating webpages for the user based on information in the databases; with thepromotional console, receiving promotional information from retailersover the internet and storing the received promotional information inthe databases; with the data acquisition engine, acquiring data onprices for products sold by retailers; with the data enrichment engine,cleansing the acquired data; with the query engine, responding tosearches from users for local retailers that sell particular products;and with the advertisement server, providing targeted advertisements tothe user on the web page containing the list of retailers.
 18. Themethod defined in claim 1 wherein the search origin is received by thelocalization service in the form of a city name, the method furthercomprising using a retail location to product name mapping table at thelocalization service to determine prices for the product at theretailers in the vicinity of the search origin.
 19. The method definedin claim 1 wherein receiving the universal resource locator comprisesreceiving a universal resource locator that contains multiple productattributes.
 20. The method defined in claim 1 wherein the localizationservice comprises a targeted advertisement table containing targetedadvertisements and associated display criteria, the method furthercomprising: with the advertisement server, applying location-baseddisplay criteria from the targeted advertisement table to the searchparameters from the universal resource locator to determine whichtargeted advertisements to display for the user on the web page thatcontains the list of retailers.